package com.dmgis.qxfw.dataservice.businessservice.nyfw.service;

import com.dmgis.qxfw.dataservice.businessservice.api.entity.ny.*;
import com.dmgis.qxfw.dataservice.businessservice.api.entity.xt.users;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @ClassName FarmXxHdService
 * @Description TODO
 * @Author sun
 * @Date 2021/7/27 13:16
 * @Version 1.0
 **/
public interface FarmXxHdService {


    /**
     * @Description: 查询所有协管员
     * @Author: sunshine
     * @Date: 2021/7/27 13:27
     **/
    Object bindCoordinateName();

    /**
     * @Description: 协管员上报信息管理-上报信息查看
     * @Author: sunshine
     * @Date: 2021/7/27 13:27
     **/
    List<CoordinatorInfo> getCrossingGuardView(String startDate, String endDate, String name);

    /**
     * @Description: 协管员上报信息管理-删除上报信息
     * @Author: sunshine
     * @Date: 2021/7/27 14:40
     **/
    Object deleteCrossingGuard(String id);

    /**
     * @Description: 协管员上报信息
     * @Author: sunshine
     * @Date: 2021/7/28 15:07
     **/
    Object AddCrossingGuard(CoordinatorInfo info, MultipartFile file, HttpServletRequest request);

    /**
     * @Description: 协理员上报回复-根据ID查看详细信息
     * @Author: sunshine
     * @Date: 2021/7/28 15:31
     **/
    Object getCrossingGuardByID(String id);

    /**
     * @Description: 协理员上报回复-回复消息（更新操作）
     * @Author: sunshine
     * @Date: 2021/7/28 15:36
     **/
    Object rervertCrossingGuard(CoordinatorInfo info);

    /**
     * @Description: 值班日志自动填充 姓名,单位
     * @Author: sunshine
     * @Date: 2021/7/29 10:21
     **/
    Object getInfocollectorbyName(String username);

    /**
     * @Description: 值班日志添加
     * @Author: sunshine
     * @Date: 2021/7/29 10:36
     **/
    Object insertDutylog(Dutylog zbry, String userType, String userName);

    /**
     * @Description: 值班日志查询历史记录
     * @Author: sunshine
     * @Date: 2021/7/29 11:11
     **/
    Object getDutylog(users zbry, String date, String startDate, String id);

    /**
     * @Description: 值班日志删除
     * @Author: sunshine
     * @Date: 2021/7/29 11:19
     **/
    Object deleteDutylog(users zbry, String startDate, String endDate, String id);

    /**
     * @Description: 值班日志更新
     * @Author: sunshine
     * @Date: 2021/7/29 11:21
     **/
    Object updateDutylog(Dutylog dutylog, users zbry, String startDate, String endDate, String id);

    /***
     * 添加信息员
     * @param zbry
     * @param userType
     * @param userName
     * @return
     */
    Object insertInfor(Infocollector zbry, String userType, String userName);

    /**
     * @Description: 根据用户账号查询信息员
     * @Author: sunshine
     * @Date: 2021/7/29 14:21
     **/
    List<Infocollector> getInfor(String username);

    /**
     * @Description: 根据用户账号查询信息员
     * @Author: sunshine
     * @Date: 2021/7/29 14:21
     **/
    List<users> getUser(String username);

    /**
     * @Description: 删除信息员
     * @Author: sunshine
     * @Date: 2021/7/29 14:21
     **/
    Object deleteInfor(users zbry, String id);

    /**
     * @Description: 更新信息员
     * @Author: sunshine
     * @Date: 2021/7/29 14:37
     **/
    Object updateInfor(Infocollector infor, users user, String id);

    /***
     * 添加协管员
     * @param zbry
     * @param userType
     * @param userName
     * @return
     */
    Object insertCrossingGuard(Coordinator zbry, String userType, String userName);

    /**
     * @Description: 根据用户账号查询协管员
     * @Author: sunshine
     * @Date: 2021/7/29 14:21
     **/
    List<Coordinator>  getCrossingGuard(String username);

    /**
     * @Description: 删除协管员
     * @Author: sunshine
     * @Date: 2021/7/29 14:21
     **/
    Object deleteCrossingGuard(users zbry, String id);

    /**
     * @Description: 更新协管员
     * @Author: sunshine
     * @Date: 2021/7/29 14:37
     **/
    Object updateCrossingGuard(Coordinator infor, users user, String id);

    /**
     * @Description: 根据站点名称查询作展示
     * @Author: sunshine
     * @Date: 2021/7/29 15:04
     **/
    Object getNFStaInfo(String staName,HttpServletRequest request);

    /**
     * @Description: 获取农作物
     * @Author: sunshine
     * @Date: 2021/7/29 15:14
     **/
    Object getCrops();

    /**
     * @Description: 新增农服站点
     * @Author: sunshine
     * @Date: 2021/7/29 15:25
     **/
    StationInfo addNFSta(StationInfo zbry, String userType, String userName);


    /**
     * @Description: 更新农服站点
     * @Author: sunshine
     * @Date: 2021/7/29 16:42
     **/
    Object updateNFSta(users user, StationInfo zbry,String stationid);

    /**
     * @Description: 删除农服站点
     * @Author: sunshine
     * @Date: 2021/7/29 16:45
     **/
    Object deleteNFStaInfo(users zbry, String stationid);

    /**
     * @Description: 根据作物品种做展示 - 发育期指标
     * @Author: sunshine
     * @Date: 2021/7/30 9:06
     **/
    Object getMatuIndex(String staName, HttpServletRequest request);

    /**
     * @Description: 得到作物类别和名称
     * @Author: sunshine
     * @Date: 2021/7/30 9:15
     **/
    Object getCropTypeAndName();

    /**
     * @Description: 得到发育期和作物名称
     * @Author: sunshine
     * @Date: 2021/7/30 9:16
     **/
    Object getCropGrowdateAndName();

    /**
     * @Description: 新增生育期指标
     * @Author: sunshine
     * @Date: 2021/7/30 9:23
     **/
    Object addMatuIndex(CropGrowdateIndexlib zbry, String userType, String userName);

    /**
     * @Description: 根据indexid修改updateMatuIndex
     * @Author: sunshine
     * @Date: 2021/7/30 9:25
     **/
    Object updateMatuIndex(users user, CropGrowdateIndexlib zbry);

    /**
     * @Description: 根据indexid删除发育期指标
     * @Author: sunshine
     * @Date: 2021/7/30 9:28
     **/
    Object deleteMatuIndex(users zbry, String indexid);

    /**
     * @Description: 根据作物品种做展示 - 病虫害指标
     * @Author: sunshine
     * @Date: 2021/7/30 10:32
     **/
    Object getDisIndex(String staName);

    /**
     * @Description: 新增病虫害指标
     * @Author: sunshine
     * @Date: 2021/7/30 10:36
     **/
    Object addDisIndex(Diseaseindexlib zbry, String userType, String userName);

    /**
     * @Description: 根据id修改updateDisIndex  病虫害指标
     * @Author: sunshine
     * @Date: 2021/7/30 10:43
     **/
    Object updateDisIndex(users user, Diseaseindexlib zbry, String indexid);

    /**
     * @Description: 根据id删除deleteDisIndex  病虫害指标
     * @Author: sunshine
     * @Date: 2021/7/30 10:46
     **/
    Object deleteDisIndex(users zbry, String id);

    /**
     * @Description: 根据作物名做展示  气象灾害指标
     * @Author: sunshine
     * @Date: 2021/7/30 10:48
     **/
    Object getMeteoroDisIndex(String staName);

    /**
     * @Description: 得到农作物易发灾害类型和名称
     * @Author: sunshine
     * @Date: 2021/7/30 10:50
     **/
    Object getEasyhappentypeAndName();

    /**
     * @Description: 新增气象灾害指标
     * @Author: sunshine
     * @Date: 2021/7/30 10:54
     **/
    Object addMeteoDisIndex(CropWeatherDistIndexlib zbry, String userType, String userName);

    /**
     * @Description: 根据id修改气象灾害指标
     * @Author: sunshine
     * @Date: 2021/7/30 10:56
     **/
    Object updateMeteoDisIndex(users user, CropWeatherDistIndexlib zbry);

    /**
     * @Description: 根据id删除气象灾害指标
     * @Author: sunshine
     * @Date: 2021/7/30 10:58
     **/
    Object deleteMeteoDisIndex(users zbry, String id);

    /***
     * 根据作物名做展示 历史发育期资料
     * @param staName
     * @return
     */
    Object getHistoryMatuInfo(String staName);

    /**
     * @Description: 新增历史发育期资料
     * @Author: sunshine
     * @Date: 2021/7/30 11:03
     **/
    Object addHistoryMatuInfo(CropGrowdateHistory zbry, String userType, String userName);

    /**
     * @Description: 根据id修改历史发育期资料updateHistoryMatuInfo
     * @Author: sunshine
     * @Date: 2021/7/30 11:05
     **/
    Object updateHistoryMatuInfo(users user, CropGrowdateHistory zbry, String id);

    /**
     * @Description: 根据id删除历史发育期资料deleteHistoryMatuInfo
     * @Author: sunshine
     * @Date: 2021/7/30 11:06
     **/
    Object deleteHistoryMatuInfo(users zbry, String id);

    /**
     * @Description: 根据作物名做展示历史产量资料
     * @Author: sunshine
     * @Date: 2021/7/30 11:11
     **/
    Object getHistoryYieldsInfo(String staName);

    /**
     * @Description: 新增历史产量资料
     * @Author: sunshine
     * @Date: 2021/7/30 12:24
     **/
    Object addHistoryYieldsInfo(CropyieldHistory zbry, String userType, String userName);

    /**
     * @Description: 根据id修改历史产量资料
     * @Author: sunshine
     * @Date: 2021/7/30 12:27
     **/
    Object updateHistoryYieldsInfo(users user, CropyieldHistory zbry, String id);

    /**
     * @Description: 根据id删除历史产量资料
     * @Author: sunshine
     * @Date: 2021/7/30 12:28
     **/
    Object deleteHistoryYieldsInfo(users zbry, String id);

    /**
     * @Description: 根据作物名做展示历史病虫害资料
     * @Author: sunshine
     * @Date: 2021/7/30 12:50
     **/
    Object getHistoryDisInfo(String staName);

    /**
     * @Description: 得到病虫害名称和作物名称
     * @Author: sunshine
     * @Date: 2021/7/30 12:54
     **/
    Object getDiseasesnameAndName();

    /**
     * @Description: 获取站点信息
     * @Author: sunshine
     * @Date: 2021/7/30 13:00
     **/
    Object getNfStationID();

    /**
     * @Description: 新增历史病虫害资料
     * @Author: sunshine
     * @Date: 2021/7/30 13:08
     **/
    Object addHistoryDisInfo(Diseasedatalib zbry, String userType, String userName);

    /**
     * @Description: 根据stationid修改历史病虫害资料
     * @Author: sunshine
     * @Date: 2021/7/30 13:11
     **/
    Object updateHistoryDisInfo(users user, Diseasedatalib zbry, String stationid);

    /**
     * @Description: 根据stationid删除历史病虫害资料
     * @Author: sunshine
     * @Date: 2021/7/30 13:13
     **/
    Object deleteHistoryDisInfo(users zbry, String stationid);

    /**
     * @Description: 根据作物名做展示历史气象灾害资料
     * @Author: sunshine
     * @Date: 2021/7/30 13:18
     **/
    Object getHistoryMeteoDisInfo(String staName);

    /**
     * @Description: 历史气象灾害资料 - 灾害种类
     * @Author: sunshine
     * @Date: 2021/7/30 13:20
     **/
    Object getDisastertype();

    /**
     * @Description: 新增历史气象灾害资料
     * @Author: sunshine
     * @Date: 2021/7/30 13:25
     **/
    Object addHistoryMeteoDisInfo(AgriWeatherDistRecord zbry, String userType, String userName);

    /**
     * @Description: 根据id修改历史气象灾害资料
     * @Author: sunshine
     * @Date: 2021/7/30 13:29
     **/
    Object updateHistoryMeteoDisInfo(users user, AgriWeatherDistRecord zbry, String id);

    /**
     * @Description: 根据id删除历史气象灾害资料
     * @Author: sunshine
     * @Date: 2021/7/30 13:33
     **/
    Object deleteHistoryMeteoDisInfo(users zbry, String id);

    /**
     * @Description: 根据作物名做展示农事活动指标
     * @Author: sunshine
     * @Date: 2021/7/30 13:35
     **/
    Object getNSServiceIndexInfo(String staName);

    /**
     * @Description: 指数名称
     * @Author: sunshine
     * @Date: 2021/7/30 13:36
     **/
    Object getIndexname();

    /**
     * @Description: 新增农事活动指标
     * @Author: sunshine
     * @Date: 2021/7/30 13:39
     **/
    Object addNSSrvIndex(AgriServiceIndex zbry, String userType, String userName);

    /**
     * @Description: 根据indexid修改农事活动指标
     * @Author: sunshine
     * @Date: 2021/7/30 13:41
     **/
    Object updateNSSrvIndex(users user, AgriServiceIndex zbry, String indexid);

    /**
     * @Description: 根据indexid删除农事活动指标
     * @Author: sunshine
     * @Date: 2021/7/30 13:42
     **/
    Object deleteNSSrvIndex(users zbry, String indexid);


    Object rervertShangBao(InfocollectorInfo info);

    Object deleteShangBaoById(users user, String id);
}